From f5086c7c394a9910a31ec80df143f5655cfde501 Mon Sep 17 00:00:00 2001 From: Factiven Date: Sat, 29 Apr 2023 10:41:23 +0700 Subject: Bug Fixes > Fixed loop refresh when failed fetching episode data --- pages/anime/[...id].js | 56 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 17 deletions(-) (limited to 'pages/anime/[...id].js') diff --git a/pages/anime/[...id].js b/pages/anime/[...id].js index ef54b1b..63849bc 100644 --- a/pages/anime/[...id].js +++ b/pages/anime/[...id].js @@ -140,15 +140,6 @@ const infoQuery = `query ($id: Int) { } }`; -const stats = [ - "Watching", - "Plan to Watch", - "Completed", - "Dropped", - "Paused", - "Rewatching", -]; - export default function Info() { const { data: session, status } = useSession(); const [data, setData] = useState(null); @@ -166,8 +157,8 @@ export default function Info() { const [time, setTime] = useState(0); const { id } = useRouter().query; - const [aniProgress, setAniProgress] = useState(0); const [epiStatus, setEpiStatus] = useState("ok"); + const [error, setError] = useState(null); const rec = info?.recommendations?.nodes.map( (data) => data.mediaRecommendation @@ -185,6 +176,7 @@ export default function Info() { progress: null, stall: false, EpiStatus: "ok", + error: null, }; // Reset all state variables to their default values @@ -227,12 +219,20 @@ export default function Info() { ]); const data = await res.json(); const infos = await info.json(); + + if (res.status === 500) { + setEpisode(null); + setEpiStatus("error"); + setError(data.message); + } else if (res.status === 404) { + window.location.href("/404"); + } setInfo(infos.data.Media); // setLog(data); const textColor = setTxtColor(infos.data.Media.coverImage?.color); - if (!data || data.episodes.length === 0) { + if (!data || data?.episodes?.length === 0) { const res = await fetch( `https://api.consumet.org/meta/anilist/info/${id[0]}?provider=9anime` ); @@ -240,6 +240,7 @@ export default function Info() { if (res.status === 500) { setEpisode(null); setEpiStatus("error"); + setError(datas.message); } else { setEpisode(datas.episodes); } @@ -285,7 +286,6 @@ export default function Info() { if (gut) { setProgress(gut?.progress); - setAniProgress(parseInt(gut?.progress)); if (gut.status === "CURRENT") { setStatuses({ name: "Watching", value: "CURRENT" }); } else if (gut.status === "PLANNING") { @@ -331,8 +331,6 @@ export default function Info() { document.body.style.overflow = "auto"; } - // console.log(progress); - return ( <> @@ -726,9 +724,19 @@ export default function Info() {

No Episodes Available

) ) : ( -

- Something went wrong, can't retrieve any episodes :/ -

+ //

+ // Something went wrong, can't retrieve any episodes :/ + //

+
+

{epiStatus} while retrieving data

+
+                            {error}
+                          
+
)} ) @@ -799,3 +807,17 @@ function setTxtColor(hexColor) { const brightness = getBrightness(hexColor); return brightness < 150 ? "#fff" : "#000"; } + +const getLanguageClassName = (language) => { + switch (language) { + case "javascript": + return "language-javascript"; + case "html": + return "language-html"; + case "bash": + return "language-bash"; + // add more languages here as needed + default: + return ""; + } +}; -- cgit v1.2.3